# 默认的Docker Swarm 集群是不会直接对外暴露提供访问的，所以我们可以在上层构建一个网关服务，
# Kong在保护，管理和扩展微服务和API的同时，也可以充当一个网关的角色通过提供日志，认证或者其他功能的插件来给给HTTP提供任何资源


path=$(pwd)

# 安装数据库
docker run -dti --name kong-database \
  --network=network \
  -p 5432:5432 \
  -e "POSTGRES_USER=kong" \
  -e "POSTGRES_DB=kong" \
  -e "POSTGRES_PASSWORD=123456" \
  postgres:9.6

# 安装网关、初始化数据库
docker run --rm \
  --network=network \
  -e "KONG_DATABASE=postgres" \
  -e "KONG_PG_HOST=kong-database" \
  -e "KONG_PG_PASSWORD=123456" \
  -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
  kong:0.14.1  kong migrations up


# 启动kong
docker run -dti --name kong \
  --network=network \
  -e "KONG_DATABASE=postgres" \
  -e "KONG_PG_HOST=kong-database" \
  -e "KONG_PG_PASSWORD=123456" \
  -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
  -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
  -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
  -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
  -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
  -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
  -p 8000:8000 \
  -p 8443:8443 \
  -p 8001:8001 \
  -p 8444:8444 \
  kong:0.14.1

# 安装 KONG Dashboard
docker run  -dti --name kong-dashboard \
--network=network \
-p 8080:8080  \
pgbi/kong-dashboard start --kong-url http://kong:8001 --basic-auth kong=kong